package com.yanzhengwu.boot.core.common.annotation;

import com.yanzhengwu.boot.core.common.enums.DataSourcesType;

import java.lang.annotation.*;

/**
 * 数据源自定义注解
 * 两个方法只能使用一个，如果两个都配置则只会读取 otherSlaveNode()
 */

@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface DataSource {

    /**
     * 提供一主一从两个数据源标准格式，其他自定义数据源使用字符串方法 otherSlaveNode()
     * @return
     */
    DataSourcesType slaveNode() default DataSourcesType.MASTER;

    /**
     * 其他自定义数据源使用此方法，节点名称和配置文件对齐即可
     * 此方法优先级最高 如果两个方法都被配置则只会读取 otherSlaveNode()
     * @return
     */
    String otherSlaveNode() default "";

}
